package com.vast.admin.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vast.system.entity.SuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@ApiModel(value="com.vast.admin.entity.Customer")
@Data
@TableName(value = "customer")
public class Customer extends SuperEntity {

    /**
     * 微信id
     */
    @TableField(value = "wx_id")
    @ApiModelProperty(value="微信id")
    @JSONField(serialize = false)
    private String wxId;

    /**
     * 上上签证书id
     */
    @TableField(value = "cert_id")
    @ApiModelProperty(value="上上签证书id")
    @JSONField(serialize = false)
    private String certId;

    /**
     * 上上签账号
     */
    @TableField(value = "account")
    @ApiModelProperty(value="上上签账号")
    @JSONField(serialize = false)
    private String account;

    /**
     * 姓名
     */
    @TableField(value = "name")
    @ApiModelProperty(value="姓名")
    private String name;

    /**
     * 手机号
     */
    @TableField(value = "mobile")
    @ApiModelProperty(value="手机号")
    private String mobile;

    /**
     * 用户证件号 身份证
     */
    @TableField(value = "identity")
    @ApiModelProperty(value="用户证件号 身份证")
    private String identity;

    /**
     * 银行卡
     */
    @TableField(value = "bank_card")
    @ApiModelProperty(value="银行卡")
    private String bankCard;

    /**
     * 上上签证书申请任务id
     */
    @TableField(value = "task_id")
    @ApiModelProperty(value="上上签证书申请任务id")
    @JSONField(serialize = false)
    private String taskId;

    /**
     * 上上签证书申请状态（证书申请状态 1：新申请 2：申请中 3：超时 4：申请失败 5：成功 6：失败重试 -1：无效的申请（系统异常） 0：taskId不存在或已过期）
     */
    @TableField(value = "bestsign_token_status")
    @ApiModelProperty(value="上上签证书申请状态（证书申请状态 1：新申请 2：申请中 3：超时 4：申请失败 5：成功 6：失败重试 -1：无效的申请（系统异常） 0：taskId不存在或已过期）")
    private Integer bestsignTokenStatus;

    /**
     * 实名认证状态（0未认证 1已认证 2认证失败）
     */
    @TableField(value = "realname_status")
    @ApiModelProperty(value="实名认证状态（0未认证 1已认证 2认证失败）")
    private Integer realnameStatus;

    /**
     * 人脸认证sid
     */
    @ApiModelProperty("人脸认证sid")
    @TableField(value = "face_sid")
    @JSONField(serialize = false)
    private String faceSid;

    /**
     * 实名认证方式（1银行卡四要素 2手机号三要素 3刷脸认证）
     */
    @ApiModelProperty("实名认证方式（1银行卡四要素 2手机号三要素 3刷脸认证）")
    @TableField(value = "realname_type")
//    @JSONField(serialize = false)
    private Integer realnameType;

    /**
     * 待签署合同id
     */
    @JSONField(serialize = false)
    @TableField("contract_id")
    private String contractId;

    @ApiModelProperty("邮箱")
    @TableField("email")
    private String email;

    @ApiModelProperty("地址")
    @TableField("addr")
    private String addr;

    @ApiModelProperty("紧急联系人姓名")
    @TableField("emergency_name")
    private String emergencyName;

    @ApiModelProperty("紧急联系人电话")
    @TableField("emergency_phone")
    private String emergencyPhone;




//    /**
//     * 创建者
//     */
//    @TableField(value = "create_by")
//    @ApiModelProperty(value="创建者")
//    private Long createBy;
//
//    /**
//     * 创建时间
//     */
//    @TableField(value = "create_time")
//    @ApiModelProperty(value="创建时间")
//    private Date createTime;
//
//    /**
//     * 更新者
//     */
//    @TableField(value = "update_by")
//    @ApiModelProperty(value="更新者")
//    private Long updateBy;
//
//    /**
//     * 更新时间
//     */
//    @TableField(value = "update_time")
//    @ApiModelProperty(value="更新时间")
//    private Date updateTime;
//
//    /**
//     * 逻辑删除 0-删除, 默认-1
//     */
//    @TableField(value = "valid")
//    @ApiModelProperty(value="逻辑删除 0-删除, 默认-1")
//    private Integer valid;

    public static final String COL_WX_ID = "wx_id";

    public static final String COL_CERT_ID = "cert_id";

    public static final String COL_ACCOUNT = "account";

    public static final String COL_NAME = "name";

    public static final String COL_MOBILE = "mobile";

    public static final String COL_IDENTITY = "identity";

    public static final String COL_BANK_CARD = "bank_card";

    public static final String COL_TASK_ID = "task_id";

    public static final String COL_BESTSIGN_TOKEN_STATUS = "bestsign_token_status";

    public static final String COL_REALNAME_STATUS = "realname_status";

    public static final String COL_CREATE_BY = "create_by";

    public static final String COL_CREATE_TIME = "create_time";

    public static final String COL_UPDATE_BY = "update_by";

    public static final String COL_UPDATE_TIME = "update_time";

    public static final String COL_VALID = "valid";

    public static final String COL_FACE_SID = "face_sid";

    public static final String COL_CONTRACT_ID = "contract_id";

    public static final String COL_REALNAME_TYPE = "realname_type";

}
